package com.fooddiary.dao;

import java.util.List;

import com.fooddiary.model.Model;
import com.fooddiary.model.Weight;
import com.fooddiary.util.SortPaginationBean;

/**
 * 
 * @author Created by andrey.kuznetsov <br>
 * @author Last modified by $Author$ <br>
 * @author Last modified on $Date$ at revision $Revision$ <br>
 */
public interface IWeightDao extends IModelDao{

	/**
	 * Returns weight records with sorting and pagination <br>
	 * @param p_model - current user model; {@link Model} <br>
	 * @param p_sortPaginationBean - bean with sorting and pagination data; {@link SortPaginationBean} <br>
	 * @return {@link List}<{@link Weight}>
	 */
	public List<Weight> getWeightRecords(Model p_model, SortPaginationBean p_sortPaginationBean);
	
	/**
	 * Returns enabled weight for given model with given unique id <br>
	 * @param p_model - current user model; {@link Model} <br>
	 * @param p_id - unique id of weight; {@link Integer} <br>
	 * @return weight record; {@link Weight}
	 */
	public Weight getEnabledWeightForModelById(Model p_model, Integer p_id);
	
	/**
	 * Returns enabled weight for given model with given date <br>
	 * @param p_model - current user model; {@link Model} <br>
	 * @param p_startDate - start date; {@link Long} <br>
	 * @param p_endDate - end date; {@link Long} <br>
	 * @return weight record; {@link Weight}
	 */
	//public Weight getEnabledWeightForModelBetweenDates(Model p_model, Long p_startDate, Long p_endDate);
	
	/**
	 * Returns max date of existing weight records<br>
	 * @param p_model - current user model; {@link Model}
	 */
	public Long getMaxDateOfExistingWeightRecords(Model p_model);
}
